const fs = require('fs')
const path = require('path')

function rmdirSync(dir) {
    if (fs.existsSync(dir)) {
        const files = fs.readdirSync(dir);
        files.forEach(function(item){
            const item_path = path.join(dir, item);
            if (fs.statSync(item_path).isDirectory()) {
                rmdirSync(item_path);
            }
            else {
                fs.unlinkSync(item_path);
            }
        });
        fs.rmdirSync(dir);
    }
}


/**
 * @param { src: String }
 * @param { dest: String }
 */

function copyDirSync(src, dest) {
    if (!isFileExist(dest)) {
        fs.mkdirSync(dest);
    }
    if (!isFileExist(src)) {
        return false;
    }
    // console.log("src:" + src + ", dest:" + dest);
    // 拷贝新的内容进去
    const dirs = fs.readdirSync(src);
    dirs.forEach(function(item){
        const item_path = path.join(src, item);
        const temp = fs.statSync(item_path);
        if (temp.isFile()) { // 是文件
            fs.copyFileSync(item_path, path.join(dest, item));
        } else if (temp.isDirectory()){ // 是目录
            copyDirSync(item_path, path.join(dest, item));
        }
    });
}


function isFileExist(path) {
    try{
        fs.accessSync(path,fs.F_OK);
    }catch(e){
        return false;
    }
    return true;
}


module.exports = {
    rmdirSync,
    copyDirSync
}
